Computer files and/or directories should be backed-up in a consistent state at least periodically. That is, the contents should not change while the backup is being made. A shadow volume copy is a copy of storage volume, for example, for backing-up data or files on the volume. The Volume Shadow Copy Service (VSS) is a Windows™ operating system utility that can be used to create a shadow copy. The VSS command, for example, may be issued to take a volume snapshot periodically, for example, every fifteen minutes to ensure that all application data and cache in the file system are flushed to disk.
The difference between the last snapshot and the current snapshot may be determined and sent to a backup system. The challenge, however, has been the performance of capturing the difference between two snapshots, for example, and optimizing the redundancy in the differences.
A minifilter file system driver may include the capability to capture every file and/or directory operation in a real time manner. However, such driver may lack the mechanism to know the exact time point of the consistent state during a snapshot in order to insert a bookmark automatically for the consistent state in the journal event sequence. The consistent state refers to the state of the data on the volume when the snapshot was taken. The exact time point of the snapshot may be used for recovery. For instance, data can be restored to any such point at which the data is application consistent, i.e., the restored data are equal to those of the snapshots at that time point. A consistent state means that a VSS snapshot contains all application consistent data which are flushed from memory and file system to disks prior to building the snapshot.
Also, a data synchronization process that synchronizes between production servers and replication servers may not ensure a consistent initial backup state since data are not read from the snapshot. For instance, recovery software may read the data such as the file and/or directory from the file system directly instead of the snapshot to avoid VSS performance hit because of copy on write. The VSS snapshot may be used only for building directory snapshot which records directory/file structures at the time point the snapshot is taken and released immediately. No file streams may be read from the VSS snapshot.
Another shortcoming may be related to the redundancy of the journal events generated during some period. For example, if the same region in a file is updated many times, only the content in the last update may need to be recorded and transferred. Currently, all the data updates are stored and transferred for backup, for example, transmitted over the network, which may be expensive in terms of data communication.